

<!DOCTYPE html>
<html lang="zh-CN" data-default-color-scheme=auto>



<head>
  <meta charset="UTF-8">
  <link rel="apple-touch-icon" sizes="76x76" href="/img/Mine.jpg">
  <link rel="icon" href="/img/Mine.jpg">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, shrink-to-fit=no">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  
  <meta name="theme-color" content="#2f4154">
  <meta name="author" content="Chiam">
  <meta name="keywords" content="算法，安全">
  
    <meta name="description" content="『操作系统』第一章 绪论(408 计算机考研）@[toc] 零：考纲1. 操作系统（OS,Operating System)的概念、特征和层次结构2.操作系统的发展和分类3.操作系统的运行环境 核心态和用户态 中断与异常 系统调用  4.操作系统的体系结构一：操作系统的基本概念1. 冯诺依曼模型与计算机系统冯诺依曼结构： 冯诺依曼的体系结构只是构成了计算机系统的系统硬件基础，称为裸机，而实际呈现在">
<meta property="og:type" content="article">
<meta property="og:title" content="『操作系统』第一章 绪论(408计算机考研）">
<meta property="og:url" content="http://example.com/2023/12/06/%E3%80%8E%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E3%80%8F%E7%AC%AC%E4%B8%80%E7%AB%A0%20%E7%BB%AA%E8%AE%BA(408%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%80%83%E7%A0%94%EF%BC%89/index.html">
<meta property="og:site_name" content="Chiam 的个人主页">
<meta property="og:description" content="『操作系统』第一章 绪论(408 计算机考研）@[toc] 零：考纲1. 操作系统（OS,Operating System)的概念、特征和层次结构2.操作系统的发展和分类3.操作系统的运行环境 核心态和用户态 中断与异常 系统调用  4.操作系统的体系结构一：操作系统的基本概念1. 冯诺依曼模型与计算机系统冯诺依曼结构： 冯诺依曼的体系结构只是构成了计算机系统的系统硬件基础，称为裸机，而实际呈现在">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://img-blog.csdnimg.cn/20201003164253872.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center">
<meta property="og:image" content="https://img-blog.csdnimg.cn/20201003184244855.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center">
<meta property="og:image" content="https://img-blog.csdnimg.cn/20201025234834743.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center">
<meta property="og:image" content="https://img-blog.csdnimg.cn/2020102523563130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center">
<meta property="og:image" content="https://img-blog.csdnimg.cn/2020102600042926.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center">
<meta property="og:image" content="https://img-blog.csdnimg.cn/20201026000449323.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center">
<meta property="og:image" content="https://img-blog.csdnimg.cn/20201026001643915.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center">
<meta property="article:published_time" content="2023-12-05T16:11:43.832Z">
<meta property="article:modified_time" content="2023-12-05T16:18:06.573Z">
<meta property="article:author" content="Chiam">
<meta property="article:tag" content="算法，安全">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://img-blog.csdnimg.cn/20201003164253872.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center">
  
  
  
  <title>『操作系统』第一章 绪论(408计算机考研） - Chiam 的个人主页</title>

  <link  rel="stylesheet" href="https://lib.baomitu.com/twitter-bootstrap/4.6.1/css/bootstrap.min.css" />



  <link  rel="stylesheet" href="https://lib.baomitu.com/github-markdown-css/4.0.0/github-markdown.min.css" />

  <link  rel="stylesheet" href="https://lib.baomitu.com/hint.css/2.7.0/hint.min.css" />

  <link  rel="stylesheet" href="https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.css" />



<!-- 主题依赖的图标库，不要自行修改 -->
<!-- Do not modify the link that theme dependent icons -->

<link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_hj8rtnfg7um.css">



<link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_lbnruvf0jn.css">


<link  rel="stylesheet" href="/css/main.css" />


  <link id="highlight-css" rel="stylesheet" href="/css/highlight.css" />
  
    <link id="highlight-css-dark" rel="stylesheet" href="/css/highlight-dark.css" />
  



  
<link rel="stylesheet" href="/css/custom.css">



  <script id="fluid-configs">
    var Fluid = window.Fluid || {};
    Fluid.ctx = Object.assign({}, Fluid.ctx)
    var CONFIG = {"hostname":"example.com","root":"/","version":"1.9.5-a","typing":{"enable":true,"typeSpeed":70,"cursorChar":"_","loop":false,"scope":[]},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"left","visible":"hover","icon":"❡"},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"code_language":{"enable":true,"default":"TEXT"},"copy_btn":true,"image_caption":{"enable":true},"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"placement":"right","headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":2},"lazyload":{"enable":true,"loading_img":"/img/loading.gif","onlypost":false,"offset_factor":2},"web_analytics":{"enable":false,"follow_dnt":true,"baidu":null,"google":{"measurement_id":null},"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":null,"app_key":null,"server_url":null,"path":"window.location.pathname","ignore_local":false}},"search_path":"/local-search.xml","include_content_in_search":true};

    if (CONFIG.web_analytics.follow_dnt) {
      var dntVal = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
      Fluid.ctx.dnt = dntVal && (dntVal.startsWith('1') || dntVal.startsWith('yes') || dntVal.startsWith('on'));
    }
  </script>
  <script  src="/js/utils.js" ></script>
  <script  src="/js/color-schema.js" ></script>
  


  
<meta name="generator" content="Hexo 6.3.0"></head>


<body>
  

  <header>
    

<div class="header-inner" style="height: 70vh;">
  <nav id="navbar" class="navbar fixed-top  navbar-expand-lg navbar-dark scrolling-navbar">
  <div class="container">
    <a class="navbar-brand" href="/">
      <strong>Chiam&#39;s Blogs</strong>
    </a>

    <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
            data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <div class="animated-icon"><span></span><span></span><span></span></div>
    </button>

    <!-- Collapsible content -->
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav ml-auto text-center">
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/">
                
                <span>首页</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/archives/">
                
                <span>归档</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/categories/">
                
                <span>分类</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/about/">
                
                <span>关于</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/links/">
                
                <span>友链</span>
              </a>
            </li>
          
        
        
          <li class="nav-item" id="search-btn">
            <a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search">
              <i class="iconfont icon-search"></i>
            </a>
          </li>
          
        
        
          <li class="nav-item" id="color-toggle-btn">
            <a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle">
              <i class="iconfont icon-dark" id="color-toggle-icon"></i>
            </a>
          </li>
        
      </ul>
    </div>
  </div>
</nav>

  

<div id="banner" class="banner" parallax=true
     style="background: url('/img/default.png') no-repeat center center; background-size: cover;">
  <div class="full-bg-img">
    <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
      <div class="banner-text text-center fade-in-up">
        <div class="h2">
          
            <span id="subtitle" data-typed-text="『操作系统』第一章 绪论(408计算机考研）"></span>
          
        </div>

        
          
  <div class="mt-3">
    
    
      <span class="post-meta">
        <i class="iconfont icon-date-fill" aria-hidden="true"></i>
        <time datetime="2023-12-06 00:11" pubdate>
          2023年12月6日 凌晨
        </time>
      </span>
    
  </div>

  <div class="mt-1">
    
      <span class="post-meta mr-2">
        <i class="iconfont icon-chart"></i>
        
          5.7k 字
        
      </span>
    

    
      <span class="post-meta mr-2">
        <i class="iconfont icon-clock-fill"></i>
        
        
        
          48 分钟
        
      </span>
    

    
    
  </div>


        
      </div>

      
    </div>
  </div>
</div>

</div>

  </header>

  <main>
    
      

<div class="container-fluid nopadding-x">
  <div class="row nomargin-x">
    <div class="side-col d-none d-lg-block col-lg-2">
      

    </div>

    <div class="col-lg-8 nopadding-x-md">
      <div class="container nopadding-x-md" id="board-ctn">
        <div id="board">
          <article class="post-content mx-auto">
            <h1 id="seo-header">『操作系统』第一章 绪论(408计算机考研）</h1>
            
            
              <div class="markdown-body">
                
                <h1 id="『操作系统』第一章-绪论-408-计算机考研）"><a href="#『操作系统』第一章-绪论-408-计算机考研）" class="headerlink" title="『操作系统』第一章 绪论(408 计算机考研）"></a>『操作系统』第一章 绪论(408 计算机考研）</h1><p>@[toc]</p>
<h1 id="零：考纲"><a href="#零：考纲" class="headerlink" title="零：考纲"></a>零：考纲</h1><h3 id="1-操作系统（OS-Operating-System-的概念、特征和层次结构"><a href="#1-操作系统（OS-Operating-System-的概念、特征和层次结构" class="headerlink" title="1. 操作系统（OS,Operating System)的概念、特征和层次结构"></a>1. 操作系统（OS,Operating System)的概念、特征和层次结构</h3><h3 id="2-操作系统的发展和分类"><a href="#2-操作系统的发展和分类" class="headerlink" title="2.操作系统的发展和分类"></a>2.操作系统的发展和分类</h3><h3 id="3-操作系统的运行环境"><a href="#3-操作系统的运行环境" class="headerlink" title="3.操作系统的运行环境"></a>3.操作系统的运行环境</h3><ol>
<li><strong>核心态和用户态</strong></li>
<li><strong>中断与异常</strong></li>
<li><strong>系统调用</strong></li>
</ol>
<h3 id="4-操作系统的体系结构"><a href="#4-操作系统的体系结构" class="headerlink" title="4.操作系统的体系结构"></a>4.操作系统的体系结构</h3><h1 id="一：操作系统的基本概念"><a href="#一：操作系统的基本概念" class="headerlink" title="一：操作系统的基本概念"></a>一：操作系统的基本概念</h1><h2 id="1-冯诺依曼模型与计算机系统"><a href="#1-冯诺依曼模型与计算机系统" class="headerlink" title="1. 冯诺依曼模型与计算机系统"></a>1. 冯诺依曼模型与计算机系统</h2><h3 id="冯诺依曼结构："><a href="#冯诺依曼结构：" class="headerlink" title="冯诺依曼结构："></a>冯诺依曼结构：</h3><p><img src="https://img-blog.csdnimg.cn/20201003164253872.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center" srcset="/img/loading.gif" lazyload alt="在这里插入图片描述"></p>
<p>冯诺依曼的体系结构只是构成了计算机系统的系统硬件基础，称为裸机，而实际呈现在用户面前的是经过若干层软件改造后的计算机。</p>
<h3 id="计算机系统的层次结构："><a href="#计算机系统的层次结构：" class="headerlink" title="计算机系统的层次结构："></a>计算机系统的层次结构：</h3><p><img src="https://img-blog.csdnimg.cn/20201003184244855.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center" srcset="/img/loading.gif" lazyload alt="在这里插入图片描述"></p>
<p>操作系统（Operating System，OS）是配置在计算机硬件之上的第一层软件，其是对硬件系统的首次扩充。</p>
<h3 id="引入操作系统的目的："><a href="#引入操作系统的目的：" class="headerlink" title="引入操作系统的目的："></a>引入操作系统的目的：</h3><ol>
<li><p><strong>提供一个计算机用户与计算机硬件系统之间的接口，是计算机系统更易于使用</strong><br>用户通过 OS 来使用计算机，从下图可以看出，用户可以通过系统调用、命令方式、图形窗口三种方式来实现与 OS 的通信，并取得其服务<br><img src="https://img-blog.csdnimg.cn/20201025234834743.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center" srcset="/img/loading.gif" lazyload alt="在这里插入图片描述"></p>
</li>
<li><p><strong>有效的控制和管理计算机系统，中的各种硬件和软件资源，使之得到更高效的利用</strong><br>在计算机系统中，包含多种软硬件资源，OS 的主要功能正是对资源进行管理，归结来说，总共分为四类：</p>
<pre><code class="hljs">1. 处理机管理：处理机的分配与控制
2. 存储器管理：内存的分配与回收
2. I/O 设备管理：I/O 设备的分配、回收与操纵
2. 文件管理：对数据和程序文件的存取、共享、保护
</code></pre>
</li>
<li><p><strong>合理地组织计算机系统的工作流程，以改善系统性能</strong></p>
</li>
</ol>
<h3 id="主要目标有四点："><a href="#主要目标有四点：" class="headerlink" title="主要目标有四点："></a>主要目标有四点：</h3><ol>
<li><p>方便性：便于用户使用<br>(用户的观点)：提供良好的、一致的用户接口。无需了解许多有关硬件和系统软件的细节。</p>
</li>
<li><p>有效性：提高系统资源利用率<br>(系统管理人员的观点)：合理地组织计算机的工作流程，管理和分配硬件、软件资源，提高资源的利用率。</p>
</li>
<li><p>可扩充性：使用模块化以便于修改和扩充<br>给计算机系统的功能的扩展提供开放式的支撑平台。方便地增加新的功能和模块。</p>
</li>
<li><p>开放性：系统遵循国际标准以便实现互连</p>
</li>
</ol>
<h1 id="二：OS-的基本特性"><a href="#二：OS-的基本特性" class="headerlink" title="二：OS 的基本特性"></a>二：OS 的基本特性</h1><h2 id="1-并行与并发"><a href="#1-并行与并发" class="headerlink" title="1.并行与并发"></a>1.并行与并发</h2><ul>
<li>并行性：两个或多个事件在同一时刻发生</li>
<li>并发性：两个或多个事件在同一时段发生<br>在单处理机系统中，多个程序宏观来看是并行，实际上是多个程序交替占用 CPU；而在多处理机系统中，多个程序被分配到多个处理机上，每个处理机处理一个可并发执行的程序。</li>
</ul>
<p>在未引入进程的系统中，同属一应用程序的计算程序与 I&#x2F;O 程序间只能顺序执行，这样极大地影响了系统资源利用率。</p>
<p>若对内存中的多个程序都分别建立一个进程，他们就可以并发执行，从而提高系统资源利用率，所谓进程是指系统中能独立运行并作为资源分配的基本单位，是由一组机器指令、数据、堆栈等组成的能独立运行的实体。</p>
<h2 id="2-共享"><a href="#2-共享" class="headerlink" title="2.共享"></a>2.共享</h2><p>在 OS 下的资源共享是指系统中的资源可供内存中多个并发执行的进程共同使用，由于内存资源有限，系统必须对资源共享进行妥善管理，以避免进程对共享资源的争夺。</p>
<p>根据资源属性的不同，进程对资源复用的方式也不同，目前主要有以下两种方式：</p>
<ul>
<li>互斥共享方式：在一段时间内只允许一个进程访问资源（临界资源）</li>
<li>同时访问方式：在一段时间内允许多个进程同时访问（在单处理机上，本质上是串行的）</li>
</ul>
<h2 id="3-虚拟"><a href="#3-虚拟" class="headerlink" title="3.虚拟"></a>3.虚拟</h2><p>虚拟最早出现在通信系统中，为提高信道利用率从而引入了虚拟技术，所谓虚拟，是指通过某种技术将一个物理实体变为若干逻辑上的对应物。</p>
<p>在 OS 中，借鉴了通信系统的虚拟设备技术，有以下两种实现方式：</p>
<ul>
<li>时分复用：利用处理机的空闲时间运行其他进程，提高处理机利用率</li>
<li>空分复用：利用存储器的空闲空间，分区域存放运行多道程序，提高内存利用率</li>
</ul>
<h2 id="4-异步"><a href="#4-异步" class="headerlink" title="4.异步"></a>4.异步</h2><p>由于资源等因素的限制，多个进程并发执行时间和执行顺序是不可预知的，所谓异步即是指进程的执行顺序与执行时间的不确定性</p>
<p>尽管如此，但只要在 OS 中配置有完善的进程同步机制，且运行环境相同，作业即使经过多次运行，得到的结果是完全相同的。</p>
<h1 id="三、OS-的主要功能"><a href="#三、OS-的主要功能" class="headerlink" title="三、OS 的主要功能"></a>三、OS 的主要功能</h1><h2 id="处理机管理功能"><a href="#处理机管理功能" class="headerlink" title="处理机管理功能"></a>处理机管理功能</h2><p>在多道程序系统中，处理机的分配与运行均以进程为基本单位，对处理机的管理，就是对进程的管理，其主要用于解决内存中多道并发执行的 “进程” 如何占用 CPU、如何运行的问题。</p>
<ul>
<li>进程控制：为作业创建进程、撤销已结束的进程，控制进程在运行过程中的状态转换，即对单个进程基本信息进行管理</li>
<li>进程同步：为多个进程运行进行协调，常用的协调方式有：进程互斥方式、进程同步方式</li>
<li>进程互斥方式：进程在对临界资源访问时，采用互斥方式</li>
<li>进程同步方式：在相互合作去完成共同任务的进程间，由同步机构对他们的执行次序进行协调</li>
<li>进程通信：用于实现相互合作进程之间的信息交换</li>
<li>调度：调度包括作业调度、进程调度两步</li>
<li>作业调度：从后备队列中按照一定算法选择若干作业，并分配所需资源，在作业调入内存后，分别建立进程</li>
<li>进程调度：从进程的就绪队列中按一定算法选择进程，并将处理机分配给他</li>
</ul>
<h2 id="存储器管理功能"><a href="#存储器管理功能" class="headerlink" title="存储器管理功能"></a>存储器管理功能</h2><ul>
<li>内存分配：为每道程序分配内存空间，以提高存储器的利用率，根据分配方式分为：静态分配、动态分配</li>
<li>内存保护：确保每道用户程序只在自己的内存空间中运行，通过界限寄存器来存放正在执行进程的内存上下界，在程序运行时，对每条指令的访问地址进行越界检查</li>
<li>地址映射：实现进程的逻辑地址到内存物理地址的映射，在程序编译时形成的目标程序地址是逻辑地址，都是从 0 开始，而真正调入内存某个空间存放的地址是物理地址</li>
<li>内存扩充：用虚拟存储技术来从逻辑上扩充内存容量，以解决内存容量不足的问题，利用内存扩充机制，来实现请求调入功能与页面置换功能</li>
</ul>
<h2 id="设备管理功能"><a href="#设备管理功能" class="headerlink" title="设备管理功能"></a>设备管理功能</h2><ul>
<li>缓冲管理：在 I&#x2F;O 设备与 CPU 间引入缓冲，使得 I&#x2F;O 设备与外设的速度尽量匹配，以提高两者的利用率、并行操作程度</li>
<li>设备分配：按某种设备分配策略，为之分配所需的设备，利用设备控制表等数据结构来记录设备及其控制器的标识符和状态，不同的设备分配方式不同</li>
<li>设备处理：设备处理程序又称设备驱动程序，用于实现 CPU 和设备控制器间的通信</li>
</ul>
<h2 id="文件管理功能"><a href="#文件管理功能" class="headerlink" title="文件管理功能"></a>文件管理功能</h2><ul>
<li>存储空间管理：通过分配外存空间，来提高外存的利用率，需要在文件系统中设置相应数据结构来记录文件存储空间的使用情况，此外要有对存储空间分配和回收的功能</li>
<li>目录管理：为文件建立目录项并进行有效组织，来提高文件检索速度</li>
<li>文件读写管理与保护：用于实现文件的读写管理（设置读写指针）与文件的保护功能-（提供有效的存取控制功能）</li>
</ul>
<h2 id="用户接口"><a href="#用户接口" class="headerlink" title="用户接口"></a>用户接口</h2><ul>
<li>命令接口：用户通过键盘发出命令以控制作业的运行，分为联机用户接口、脱机用户接口、图形用户接口</li>
<li>联机用户接口：为联机用户提供，由一组磁盘操作命令和命令解释程序组成</li>
<li>脱机用户接口：为批作业处理的用户提供，由一组作业控制语言组成</li>
<li>程序接口：为用户程序在执行中访问系统资源而设置，由一组系统调用组成，只有早期汇编语言能使用，后高级语言及 C 语言中都给出了系统调用对应的库函数。</li>
<li>图形用户接口：采用图形化操作界面，提高了用户交互性</li>
</ul>
<h1 id="四：未配备操作系统的计算机系统"><a href="#四：未配备操作系统的计算机系统" class="headerlink" title="四：未配备操作系统的计算机系统"></a>四：未配备操作系统的计算机系统</h1><h2 id="1-人工操作方式"><a href="#1-人工操作方式" class="headerlink" title="1.人工操作方式"></a>1.人工操作方式</h2><p>早期的操作方式是利用事先穿孔的纸带，装入纸带输入机将纸带上的程序与数据输入计算机，再启动计算机，只有当程序运行完毕并取走运算结果后，才允许下一个用户上机。</p>
<p>人工操作的方式严重降低了计算机资源的利用率，出现了所谓的人机矛盾，即用户独占全机、CPU 等待人工操作。</p>
<h2 id="2-脱机输入-输出方式"><a href="#2-脱机输入-输出方式" class="headerlink" title="2.脱机输入&#x2F;输出方式"></a>2.脱机输入&#x2F;输出方式</h2><p>为解决人机矛盾，后出现了脱机 I&#x2F;O 技术，即事先将装有用户程序和数据的纸带装入纸带输入机，在一台外围机的处理下，将纸带上的数据、程序输入到磁带上，当 CPU 需要时，再调入内存。</p>
<p>脱机 I&#x2F;O 技术在一定程度上，减少了 CPU 的空闲时间并提高了 I&#x2F;O 速度。</p>
<p><img src="https://img-blog.csdnimg.cn/2020102523563130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center" srcset="/img/loading.gif" lazyload alt="unload sucessful"></p>
<h2 id="3-单道批处理系统"><a href="#3-单道批处理系统" class="headerlink" title="3. 单道批处理系统"></a>3. 单道批处理系统</h2><p>为实现作业的连续处理，需要将一批作业以脱机方式输入到磁带上，并在系统中配上监督程序，在监督程序的控制下，使得作业能一个接一个地连续处理。</p>
<p>虽然系统对作业的处理是成批进行的，但内存中始终保持一道作业，仍然存在 I&#x2F;O 设备与 CPU 速度不匹配的情况。</p>
<p><img src="https://img-blog.csdnimg.cn/2020102600042926.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center" srcset="/img/loading.gif" lazyload alt="unload sucessful"></p>
<h2 id="4-多道批处理系统"><a href="#4-多道批处理系统" class="headerlink" title="4.多道批处理系统"></a>4.多道批处理系统</h2><p>对于单道批处理操作系统来说，其可以连续的运行多个程序，减少了程序切换时的 CPU 等待时间，但其问题在于：当执行 I&#x2F;O 操作时，CPU 是空闲的，这极大的增加了 CPU 的等待时间。</p>
<p>为解决<strong>资源利用率与系统吞吐量低下</strong>的问题，出现了多道批处理系统。</p>
<p>多道批处理系统是将多个程序同时加载到内存中，当其中正在运行的程序执行 I&#x2F;O 操作时，CPU 可以继续执行其他的程序，而当 I&#x2F;O 操作结束后，之前的程序继续执行。</p>
<p>多道批处理系统虽然内存中存在多个程序，但同样一个时间内只有一个程序被执行，其他没有被执行的程序存入后备队列中，等待调度程序调用。</p>
<p>多道批处理系统具有多道性、无序性、调度性等特点，其资源利用率高、系统吞吐量大、平均运行时间长，但由于后备队列需要内存管理，调度程序需要设备管理等问题，增加了系统的负载。<br><img src="https://img-blog.csdnimg.cn/20201026000449323.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center" srcset="/img/loading.gif" lazyload alt="在这里插入图片描述"></p>
<h3 id="1-多道批处理系统的特征"><a href="#1-多道批处理系统的特征" class="headerlink" title="1. 多道批处理系统的特征"></a>1. 多道批处理系统的特征</h3><ul>
<li>多道性</li>
<li>无序性</li>
<li>调度性<ul>
<li>作业调度</li>
<li>进程调度</li>
</ul>
</li>
</ul>
<h3 id="2-多道批处理系统的优缺点"><a href="#2-多道批处理系统的优缺点" class="headerlink" title="2. 多道批处理系统的优缺点"></a>2. 多道批处理系统的优缺点</h3><ul>
<li><p>资源利用率高<br>CPU 处于忙碌状态，可以提高 I&#x2F;O 设备的利用率</p>
</li>
<li><p>系统吞吐量大<br>Cpu 和其他资源保持忙碌状态，仅当作业完成或运行不下去时切换</p>
</li>
<li><p>平均周转时间长</p>
</li>
<li><p>排队依次处理，作业的周转时间较长</p>
</li>
<li><p>无交互能力<br>用户一旦把作业提交给系统，直至作业完成，用户都不能与自己的作业交互</p>
</li>
<li><p>适合大型科学计算、数据处理</p>
</li>
</ul>
<p><img src="https://img-blog.csdnimg.cn/20201026001643915.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYyNzExOA==,size_16,color_FFFFFF,t_70#pic_center" srcset="/img/loading.gif" lazyload alt="在这里插入图片描述"></p>
<h3 id="3-多道批处理系统需要解决的问题"><a href="#3-多道批处理系统需要解决的问题" class="headerlink" title="3.多道批处理系统需要解决的问题"></a>3.多道批处理系统需要解决的问题</h3><ul>
<li>处理机管理问题<ul>
<li>分配与回收</li>
<li>提高利用率</li>
</ul>
</li>
<li>内存管理问题<ul>
<li>分配与回收</li>
<li>信息保护</li>
</ul>
</li>
<li>I&#x2F;O 设备管理问题<ul>
<li>分配与使用</li>
<li>提高利用率</li>
</ul>
</li>
<li>文件管理问题<ul>
<li>方便使用</li>
<li>保证数据的安全性与一致性</li>
</ul>
</li>
<li>作业管理问题<ul>
<li>根据作业类型进行作业组织</li>
</ul>
</li>
<li>用户与系统接口<ul>
<li>提供用户与 OS 间的接口</li>
</ul>
</li>
</ul>
<h2 id="5-分时系统"><a href="#5-分时系统" class="headerlink" title="5.分时系统"></a>5.分时系统</h2><p>对于多道批处理系统来说，其人机交互性极差，为满足用户对交互性的需求，由此形成了一种新型 OS —— 分时系统。</p>
<p>所谓分时系统是指，在一台主机上连接了多个配有显示器与键盘终端，并由此组成的系统，该系统允许多个用户同时通过自己的终端，以交互式使用计算机，共享主机资源。</p>
<p>分时系统实现了多用户连接主机、请求轮转进内存、快速响应处理等功能，其最大特点是采用时间片轮转方式来处理服务请求。</p>
<p>所谓时间片，是指分配给进程运行的一段时间，根据时间片的定义，由此有了用户响应时间(RT)，即：用户响应时间 ≈ 时间片 * 用户数量</p>
<h3 id="改变批处理系统的运行方式"><a href="#改变批处理系统的运行方式" class="headerlink" title="改变批处理系统的运行方式"></a>改变批处理系统的运行方式</h3><ul>
<li>作业直接进入内存</li>
<li>系统采用时间片轮转方式处理服务请求</li>
</ul>
<h3 id="分时系统实现中的关键问题"><a href="#分时系统实现中的关键问题" class="headerlink" title="分时系统实现中的关键问题"></a>分时系统实现中的关键问题</h3><ul>
<li>及时接收</li>
<li>及时处理</li>
</ul>
<h3 id="分时系统的特征："><a href="#分时系统的特征：" class="headerlink" title="分时系统的特征："></a>分时系统的特征：</h3><h4 id="多路性：多个用户同时使用一台计算机-共享-CPU-和其他资源，充分利用系统资源。"><a href="#多路性：多个用户同时使用一台计算机-共享-CPU-和其他资源，充分利用系统资源。" class="headerlink" title="多路性：多个用户同时使用一台计算机,共享 CPU 和其他资源，充分利用系统资源。"></a>多路性：多个用户同时使用一台计算机,共享 CPU 和其他资源，充分利用系统资源。</h4><ul>
<li><strong>宏观上</strong>：是多个人同时使用一个 CPU</li>
<li><strong>微观上</strong>：多个人在不同时刻轮流使用 CPU</li>
</ul>
<h4 id="独立性："><a href="#独立性：" class="headerlink" title="独立性："></a>独立性：</h4><p>用户感觉不到计算机为其他人服务，各用户独立操作，互不干扰。</p>
<h4 id="及时性："><a href="#及时性：" class="headerlink" title="及时性："></a>及时性：</h4><p>通过时间片技术和轮转调度算法保证及时响应。</p>
<h4 id="交互性："><a href="#交互性：" class="headerlink" title="交互性："></a>交互性：</h4><p>系统及时响应用户的请求，显著提高调试和修改程序的效率：缩短了周转时间。</p>
<h2 id="6-实时系统"><a href="#6-实时系统" class="headerlink" title="6.实时系统"></a>6.实时系统</h2><p>随着计算机的发展，计算机需要一种能及时计算的系统，即系统的正确性不仅由计算的逻辑结果来确定，还取决于产生结果的时间。</p>
<p>简单来说，就是将时间作为关键参数，其必须对接收到的某些信号做出实时的反应。</p>
<p>由此我们可得到实时系统的定义：系统能及时响应外部事件的请求，在规定时间内完成对事件的处理，并控制所有实时任务协调一致地运行。</p>
<p>常见是实时系统有：工业控制系统、信息查询系统、武器控制系统、嵌入式系统等</p>
<h1 id="五：操作系统的结构"><a href="#五：操作系统的结构" class="headerlink" title="五：操作系统的结构"></a>五：操作系统的结构</h1><h2 id="无结构操作系统"><a href="#无结构操作系统" class="headerlink" title="无结构操作系统"></a>无结构操作系统</h2><p>在早期，操作系统的开发者只是将注意力放在功能的实现和获得高的效率上，缺乏首尾一致的设计思想。</p>
<p>此时 OS 是为数众多的一组过程的集合，每个过程可以任意地调用其他过程，使得操作系统内部结构混乱又复杂。</p>
<p>因此，这种 OS 是无结构的，也有人将其称为整体系统结构。</p>
<h2 id="模块化操作系统"><a href="#模块化操作系统" class="headerlink" title="模块化操作系统"></a>模块化操作系统</h2><p>20 世纪 60 年代，随着模块化程序设计技术的出现，操作系统的编写也开始利用该技术。</p>
<p>该技术是基于分解与模块化的原则来控制大型软件的复杂度。</p>
<p>为使 OS 具有较清晰的结构，OS 的设计按照模块-接口法来进行，即按其功能精心地划分为若干具有一定独立性的模块，每个模块具有某方面的管理功能，各模块间能通过接口实现交互。</p>
<p>同时，进一步将各个模块分为若干具有一定功能的子模块，同样也规定好他们之间的接口。</p>
<p>load unsuccessful</p>
<p>该方法不仅提高设计的正确性、可理解性、可维护性，还增强了 OS 的可适应性，通过对相应功能模块增减和修补，可以满足新需求，同时还加速了开发过程。</p>
<p>但该方法同样存在不少问题，在设计初期，模块划分和接口规定是十分不精确的，并且很难保证其完全正确，这会使得接口规定与实际完成的模块需求不匹配，而出现装配困难。</p>
<p>此外，各模块的设计齐头并进，没有决策顺序，是一种 “无序” 模块，模块间仍会有复杂依赖关系，这反而可能会使 OS 结构不清晰。</p>
<h2 id="分层式操作系统"><a href="#分层式操作系统" class="headerlink" title="分层式操作系统"></a>分层式操作系统</h2><p>为将模块-接口法中决定顺序的无序性变为有序性，引入了有序分层法，即在目标系统 $A_n$和逻辑系统 A0 间，铺设若干层次的软件$A_1,A_2,…,A_{n−1}$，使得 A<em>n 通过 $A</em>{n−1},…,A_2,A_1$层后，最终能在 $A_0$上运行。</p>
<p>在分层式操作系统中，采用自底向上的有序分层法，每一步设计都建立在可靠基础上，每一次仅能使用其底层所提供的功能与服务，由此使得系统的调试与验证变得十分容易。</p>
<p>由于各层之间只存在单向的依赖关系，即高层仅依赖紧邻的低层，这保证了系统正确性，使得系统容易维护与扩充。</p>
<p>但由于分层单向依赖，当执行一个功能时，总要自下而上地穿越多层，这增加系统通信开销，降低了效率。</p>
<h2 id="微内核操作系统"><a href="#微内核操作系统" class="headerlink" title="微内核操作系统"></a>微内核操作系统</h2><p>微内核操作系统，即实现了一个可在其上构建通用 OS 的基础内核，该内核程序运行在核心态，开机常驻内存。</p>
<p>当前微内核操作系统结构仍没有一致公认的定义，但可从以下 4 方面进行描述：</p>
<ul>
<li>足够小的内核：微内核并非一个完整的 OS。与硬件紧密相关，实现较基本功能，复杂客户和服务器通信</li>
<li>应用机制与策略分离原理：机制用于实现某一功能的具体执行机构，位于基层；策略借助某些参数和算法实现功能优化或达到不同功能目标，位于高层</li>
<li>采用面向对象技术</li>
<li>基于 C&#x2F;S 模式<br>微内核包含的基本功能有：进程管理、低级存储管理、中断和陷入处理等，调度算法、虚拟内存的页面置换算法等都放入外部服务器中实现。</li>
</ul>
<p>对于微内核操作系统来说，只有内核能访问硬件，服务器在用户态出错时绝不会导致系统瘫痪，同时其可移植性强，尤适用于分布式系统。</p>

                
              </div>
            
            <hr/>
            <div>
              <div class="post-metas my-3">
  
    <div class="post-meta mr-3 d-flex align-items-center">
      <i class="iconfont icon-category"></i>
      

<span class="category-chains">
  
  
    
      <span class="category-chain">
        
  <a href="/categories/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/" class="category-chain-item">操作系统</a>
  
  

      </span>
    
  
</span>

    </div>
  
  
</div>


              
  

  <div class="license-box my-3">
    <div class="license-title">
      <div>『操作系统』第一章 绪论(408计算机考研）</div>
      <div>http://example.com/2023/12/06/『操作系统』第一章 绪论(408计算机考研）/</div>
    </div>
    <div class="license-meta">
      
        <div class="license-meta-item">
          <div>作者</div>
          <div>Chiam</div>
        </div>
      
      
        <div class="license-meta-item license-meta-date">
          <div>发布于</div>
          <div>2023年12月6日</div>
        </div>
      
      
      
        <div class="license-meta-item">
          <div>许可协议</div>
          <div>
            
              
              
                <a class="print-no-link" target="_blank" href="https://creativecommons.org/licenses/by/4.0/">
                  <span class="hint--top hint--rounded" aria-label="BY - 署名">
                    <i class="iconfont icon-by"></i>
                  </span>
                </a>
              
            
          </div>
        </div>
      
    </div>
    <div class="license-icon iconfont"></div>
  </div>



              
                <div class="post-prevnext my-3">
                  <article class="post-prev col-6">
                    
                    
                      <a href="/2023/12/06/%E3%80%8E%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E3%80%8F%E9%83%A8%E5%88%86%E7%AE%80%E7%AD%94%E9%A2%98%E7%9B%AE/" title="『操作系统』部分简答题目">
                        <i class="iconfont icon-arrowleft"></i>
                        <span class="hidden-mobile">『操作系统』部分简答题目</span>
                        <span class="visible-mobile">上一篇</span>
                      </a>
                    
                  </article>
                  <article class="post-next col-6">
                    
                    
                      <a href="/2023/12/06/%E3%80%8E%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E3%80%8F%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B2%E7%AE%A1%E7%90%86%E4%B9%8B%E4%BD%8D%E7%A4%BA%E5%9B%BE%E6%B3%95/" title="『操作系统』磁盘空闲管理之位示图法">
                        <span class="hidden-mobile">『操作系统』磁盘空闲管理之位示图法</span>
                        <span class="visible-mobile">下一篇</span>
                        <i class="iconfont icon-arrowright"></i>
                      </a>
                    
                  </article>
                </div>
              
            </div>

            
  
  
    <article id="comments" lazyload>
      
  <div id="valine"></div>
  <script type="text/javascript">
    Fluid.utils.loadComments('#valine', function() {
      Fluid.utils.createScript('https://lib.baomitu.com/valine/1.5.1/Valine.min.js', function() {
        var options = Object.assign(
          {"appId":"fIfc7WqUDZohlQuPc2lz5mJy-MdYXbMMI","appKey":"zjlAG3ZA3o4cBHVAkjzc2Z20","path":"window.location.pathname","placeholder":"留言仅限讨论，禁止广告等行为","avatar":"retro","meta":["nick","mail","link"],"requiredFields":[],"pageSize":10,"lang":"zh-CN","highlight":false,"recordIP":false,"serverURLs":"https://fifc7wqu.api.lncldglobal.com","emojiCDN":null,"emojiMaps":null,"enableQQ":false},
          {
            el: "#valine",
            path: window.location.pathname
          }
        )
        new Valine(options);
        Fluid.utils.waitElementVisible('#valine .vcontent', () => {
          var imgSelector = '#valine .vcontent img:not(.vemoji)';
          Fluid.plugins.imageCaption(imgSelector);
          Fluid.plugins.fancyBox(imgSelector);
        })
      });
    });
  </script>
  <noscript>Please enable JavaScript to view the comments</noscript>


    </article>
  


          </article>
        </div>
      </div>
    </div>

    <div class="side-col d-none d-lg-block col-lg-2">
      
  <aside class="sidebar" style="margin-left: -1rem">
    <div id="toc">
  <p class="toc-header">
    <i class="iconfont icon-list"></i>
    <span>目录</span>
  </p>
  <div class="toc-body" id="toc-body"></div>
</div>



  </aside>


    </div>
  </div>
</div>





  



  



  



  



  







    

    
      <a id="scroll-top-button" aria-label="TOP" href="#" role="button">
        <i class="iconfont icon-arrowup" aria-hidden="true"></i>
      </a>
    

    
      <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
     aria-hidden="true">
  <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header text-center">
        <h4 class="modal-title w-100 font-weight-bold">搜索</h4>
        <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body mx-3">
        <div class="md-form mb-5">
          <input type="text" id="local-search-input" class="form-control validate">
          <label data-error="x" data-success="v" for="local-search-input">关键词</label>
        </div>
        <div class="list-group" id="local-search-result"></div>
      </div>
    </div>
  </div>
</div>

    

    
  </main>

  <footer>
    <div class="footer-inner">
  
    <div class="footer-content">
       <meta name="referrer" content="no-referrer" /> <footer id="footer" role="contentinfo"> <div class="divider"> <div class="wall"></div> <img class="animals" src="/img/footer_animals_new.png" srcset="/img/loading.gif" lazyload alt="Footer Animals"> </div> <div class="container" data-index="450"> <p> <a href="https://chiamzhang.github.io" target="_blank">DogEgg</a> <i class="iconfont icon-love"></i> <a href="#" target="_blank">LittePig</a> </p> <p> Powered by  <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a> <i class="iconfont icon-pen"></i> Theme  <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a> </p> </div> </footer> 
    </div>
  
  
  
  
</div>

  </footer>

  <!-- Scripts -->
  
  <script  src="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.js" ></script>
  <link  rel="stylesheet" href="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.css" />

  <script>
    NProgress.configure({"showSpinner":false,"trickleSpeed":100})
    NProgress.start()
    window.addEventListener('load', function() {
      NProgress.done();
    })
  </script>


<script  src="https://lib.baomitu.com/jquery/3.6.4/jquery.min.js" ></script>
<script  src="https://lib.baomitu.com/twitter-bootstrap/4.6.1/js/bootstrap.min.js" ></script>
<script  src="/js/events.js" ></script>
<script  src="/js/plugins.js" ></script>


  <script  src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js" ></script>
  <script>
    (function (window, document) {
      var typing = Fluid.plugins.typing;
      var subtitle = document.getElementById('subtitle');
      if (!subtitle || !typing) {
        return;
      }
      var text = subtitle.getAttribute('data-typed-text');
      
        typing(text);
      
    })(window, document);
  </script>




  
    <script  src="/js/img-lazyload.js" ></script>
  




  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/tocbot/4.20.1/tocbot.min.js', function() {
    var toc = jQuery('#toc');
    if (toc.length === 0 || !window.tocbot) { return; }
    var boardCtn = jQuery('#board-ctn');
    var boardTop = boardCtn.offset().top;

    window.tocbot.init(Object.assign({
      tocSelector     : '#toc-body',
      contentSelector : '.markdown-body',
      linkClass       : 'tocbot-link',
      activeLinkClass : 'tocbot-active-link',
      listClass       : 'tocbot-list',
      isCollapsedClass: 'tocbot-is-collapsed',
      collapsibleClass: 'tocbot-is-collapsible',
      scrollSmooth    : true,
      includeTitleTags: true,
      headingsOffset  : -boardTop,
    }, CONFIG.toc));
    if (toc.find('.toc-list-item').length > 0) {
      toc.css('visibility', 'visible');
    }

    Fluid.events.registerRefreshCallback(function() {
      if ('tocbot' in window) {
        tocbot.refresh();
        var toc = jQuery('#toc');
        if (toc.length === 0 || !tocbot) {
          return;
        }
        if (toc.find('.toc-list-item').length > 0) {
          toc.css('visibility', 'visible');
        }
      }
    });
  });
</script>


  <script src=https://lib.baomitu.com/clipboard.js/2.0.11/clipboard.min.js></script>

  <script>Fluid.plugins.codeWidget();</script>


  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/anchor-js/4.3.1/anchor.min.js', function() {
    window.anchors.options = {
      placement: CONFIG.anchorjs.placement,
      visible  : CONFIG.anchorjs.visible
    };
    if (CONFIG.anchorjs.icon) {
      window.anchors.options.icon = CONFIG.anchorjs.icon;
    }
    var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
    var res = [];
    for (var item of el) {
      res.push('.markdown-body > ' + item.trim());
    }
    if (CONFIG.anchorjs.placement === 'left') {
      window.anchors.options.class = 'anchorjs-link-left';
    }
    window.anchors.add(res.join(', '));

    Fluid.events.registerRefreshCallback(function() {
      if ('anchors' in window) {
        anchors.removeAll();
        var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
        var res = [];
        for (var item of el) {
          res.push('.markdown-body > ' + item.trim());
        }
        if (CONFIG.anchorjs.placement === 'left') {
          anchors.options.class = 'anchorjs-link-left';
        }
        anchors.add(res.join(', '));
      }
    });
  });
</script>


  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.js', function() {
    Fluid.plugins.fancyBox();
  });
</script>


  <script>Fluid.plugins.imageCaption();</script>

  <script  src="/js/local-search.js" ></script>




  
<script src="/js/love.js"></script>
<script src="/js/funnyTitle.js"></script>
<script src="/js/backTop.js"></script>
<script src="//cdn.jsdelivr.net/gh/bynotes/texiao/source/js/xiaoxuehua.js"></script>



<!-- 主题的启动项，将它保持在最底部 -->
<!-- the boot of the theme, keep it at the bottom -->
<script  src="/js/boot.js" ></script>


  

  <noscript>
    <div class="noscript-warning">博客在允许 JavaScript 运行的环境下浏览效果更佳</div>
  </noscript>
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/wanko.model.json"},"display":{"position":"left","width":150,"height":150,"hOffset":20,"vOffset":0},"mobile":{"show":false,"scale":0.5},"react":{"opacity":0.9},"log":false});</script></body>
</html>
